#include "threadpool.h"
#include <unistd.h>
#include <crypt.h>
int get_salt(char *salt, char *passwd)
{
    int idx=strlen(passwd)-1;
    while(passwd[idx]!='$'){
        idx--;
    }
    memcpy(salt,passwd,idx+1);
    return 0;
}

int passwdVerify(char *pName, char *pPasswd)
{//printf("name=%s,passwd=%s\n",pName,pPasswd);
    char salt[512]={0};
    struct spwd *pspwd;
    if ((pspwd = getspnam(pName)) == NULL)
    {
        return -1;// 没有用户返回-1
    }
    get_salt(salt, pspwd->sp_pwdp);// 得到salt,用得到的密码作参数

    if (strcmp(pspwd->sp_pwdp, crypt(pPasswd, salt)) == 0)// 进行密码验证
    {
        return 1; // 验证成功 返回1
    }
    else
    {
        return 0; // 验证失败 返回0
    }
}

